package ntut.andengine.gamedesign;

import org.anddev.andengine.engine.Engine;
import org.anddev.andengine.entity.scene.Scene;
import org.anddev.andengine.opengl.texture.bitmap.BitmapTexture;
import org.anddev.andengine.ui.activity.BaseGameActivity;

import android.content.Context;


public abstract class GameScene extends BaseGameActivity{
	// ===========================================================
	// Constants
	// ===========================================================

	protected static final int CAMERA_WIDTH = 480;
	protected static final int CAMERA_HEIGHT = 800;
	
	// ===========================================================
	// Fields
	// ===========================================================

	protected Context mContext;
	protected Engine mEngine;	// Managers
	protected BitmapTexture mBitmapTexture;
	protected Scene mScene;
	
	// ===========================================================
	// Constructors
	// ===========================================================

	public GameScene(Context context, Engine engine){
		mContext = context;
		mEngine = engine;
		mScene = new Scene();
	}
	
	// ===========================================================
	// Getter & Setter
	// ===========================================================

	public Context getContext(){
		return mContext;
	}
	
	public Engine getEngine(){
		return mEngine;
	}
	
	public Scene getScene(){
		return mScene;
	}
	
	// ===========================================================
	// Methods for/from SuperClass/Interfaces
	// ===========================================================

	// ===========================================================
	// Methods
	// ===========================================================

	abstract public void onLoadResources();	
	abstract public Scene onLoadScene();
	
//	public void changeScene(BitmapTexture bitmapTexture, GameScene nextGameScene){
//		mEngine.getTextureManager().unloadTexture(bitmapTexture);
//		nextGameScene.onLoadResources();
//		mEngine.setScene(nextGameScene.onLoadScene());	
//	}
//	
	// ===========================================================
	// Inner and Anonymous Classes
	// ===========================================================

}
